package Modelo;
import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class SIS_PERFILES{
	private double ID;
	private String DESCRIPCION;
        private Conexion con = null;
        
	public SIS_PERFILES(){}

	public SIS_PERFILES(double ID,String DESCRIPCION){
		this.ID =ID;
		this.DESCRIPCION =DESCRIPCION;
	}

	public boolean Insertar(){
		try{
			String consulta = "insert into BROKER.SIS_PERFILES(ID,DESCRIPCION) VALUES ("+ID+",'"+DESCRIPCION+"')";
			con.EjecutarSentencia(consulta);
			return true;
		}
		catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}

	public boolean EliminarXid() throws SQLException{
            String consulta = "delete from BROKER.SIS_PERFILES where ID = "+getID();
            con.EjecutarSentencia(consulta);
            return true;
	}

	public SIS_PERFILES BuscarXid(double id){
		try{String consulta = "select * from BROKER.SIS_PERFILES where ID = "+id;
			ResultSet rs = con.EjecutarConsulta(consulta);
			return Cargar(rs).get(0);}
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}

	public List<SIS_PERFILES> Todos(){
		try{String consulta = "select * from BROKER.SIS_PERFILES";
			ResultSet rs = con.EjecutarConsulta(consulta);
			return Cargar(rs);}
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
        
        public List<SIS_PERFILES> TodosLosInactivos(double id_cargo, String text){
		try{
                    String consulta = "select * from BROKER.SIS_PERFILES sp1 where upper(sp1.DESCRIPCION) like upper('%"+text+"%') and sp1.ID not in (select sp.ID from BROKER.SIS_PERFILES sp, BROKER.RRH_CARGO_PERFIL rcp, BROKER.RHH_CARGO rc where sp.ID = rcp.ID_PERFIL and rcp.ID_CARGO = rc.ID and rc.ID = "+id_cargo+" )";
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
        public List<SIS_PERFILES> TodosLosActivos(double id_cargo,String text){
		try{
                    String consulta = "select sp.* from BROKER.SIS_PERFILES sp, BROKER.RRH_CARGO_PERFIL rcp, BROKER.RHH_CARGO rc where sp.ID = rcp.ID_PERFIL and rcp.ID_CARGO = rc.ID and upper(sp.DESCRIPCION) like upper('%"+text+"%') and rc.ID ="+id_cargo;
                    ResultSet rs = con.EjecutarConsulta(consulta);
                    return Cargar(rs);
                }
		catch(Exception e){
			e.printStackTrace();}
			return null;
	}
        
	public List<SIS_PERFILES> Cargar(ResultSet rs){
		try{
			List<SIS_PERFILES> lista = new ArrayList<SIS_PERFILES>();
			while(rs.next()){
				SIS_PERFILES objeto = new SIS_PERFILES();

				objeto.setID(rs.getDouble("ID"));
				objeto.setDESCRIPCION(rs.getString("DESCRIPCION"));
                                objeto.setCon(con);
				lista.add(objeto);
			}
			return lista;
		}
		catch(SQLException ex){
			ex.printStackTrace();
		return null;}
	}

	public double getID(){
		return ID;
	}
	public void setID(double ID){
		this.ID=ID;
	}

	public String getDESCRIPCION(){
		return DESCRIPCION;
	}
	public void setDESCRIPCION(String DESCRIPCION){
		this.DESCRIPCION=DESCRIPCION;
	}

    public Conexion getCon() {
        return con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
        
        
}
